// 测试用的加密核心，只做一次异或运算
#pragma once
#include "bc_kernel_i.h"

class C_XOR16 : public IBlockCipherKernel
{
public:
    virtual int GetBlockLen() { return 16; };
    virtual int GetKeyLen() { return 16; };
    virtual int SetKey(BYTE *data, int iLen, void *pvResv = nullptr);

    virtual int Encrypt(BYTE *pIn, BYTE *pOut);
    virtual int Decrypt(BYTE *pIn, BYTE *pOut);

protected:
    BYTE m_bfKey[16];
};
